
#include "bsp_adc.h"

/**
  * @brief          初始化并校准ADC
  * @retval         无
  */
void bsp_adc_init(void)
{
	//校准ADC的值
	HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);
	HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED);
}

/**
  * @brief          开始使用DMA的ADC采集
  * @param[in,out]  adcx: ADC句柄
  * @param[in,out]  buf: 缓冲区指针
  * @param[in]      len: 数据长度
  * @retval         无
  */
void BSP_ADC_Start_DMA(ADC_HandleTypeDef* adcx, uint32_t* buf, uint8_t len)
{
	HAL_ADC_Start_DMA(adcx, (uint32_t*)buf, len);
}

/**
 * @brief ADC轮询读取
 * @param  
 */
extern void Get_ADC_Value(ADC_HandleTypeDef *adcx,uint16_t *buf)
{
  if(adcx==&hadc1)
	{
		for(uint8_t i=0;i<3;i++)
		{
	  	HAL_ADC_Start(adcx);
			HAL_ADC_PollForConversion(adcx,10);
			buf[i]=(uint16_t)HAL_ADC_GetValue(adcx);
		}
	}
 if(adcx==&hadc2)
	{
		for(uint8_t i=0;i<2;i++)
		{
	  	HAL_ADC_Start(adcx);
			HAL_ADC_PollForConversion(adcx,10);
			buf[i]=(uint16_t)HAL_ADC_GetValue(adcx);
		}
	}

}



